6120c992e6fe743f8853927ce714c0253ab2aeb3,basex-core/src/main/java/org/basex/core/locks/NonfairLockQueue.java,NonfairLockQueue,wait,#number#boolean#boolean#,19

Before Change


    queue.add(id);

    // loop until job is placed first (prefer readers)
    do wait(); while(write && !readers.isEmpty() || !id.equals(queue.peek()));

    // remove job from queue
    queue.remove(id);

After Change


      throws InterruptedException {

    // only wait if job is locking
    if(jobs >= parallel && (read || write)) {
      // add job id to queue and wait
      final Queue<Long> queue = write ? writers : readers;
      queue.add(id);

      // loop until job is placed first (prefer readers)
      do {
        wait();
      } while(jobs >= parallel || write && !readers.isEmpty() || !id.equals(queue.peek()));

      // remove job from queue